$VER: FastFontList 1.1 (23.03.99)
By Matt Hey
REQUIREMENTS
RECOMMENDED
- A lot of fonts
- Programs that use fonts
DESCRIPTION
FastFontList is a cache program for FONTS: font listing. In most cases it speeds
up font requesters and font scanning. It is useful to Amiga owners with many
fonts in their FONTS: and isn't much use otherwise. It SetFunctions (patches)
the AvailFonts function in the diskfont.library and remains resident in memory.
It has no GUI or interface; just run it to make font requesters faster.
FixFontList is a program that comes with FastFontList and is used to make an up
to date cache for FastFontList to use. It must be run before FastFontList or no
speed increase will be seen.
Advantages...
- 1. very fast font listing of FONTS:
- 2. works with the ASL font requester (and more)
- 3. saves CPU cycles when listing large FONTS: and sleeps otherwise
- 4. less memory is required to list a lot of fonts (yes, it's true)
- 5. doesn't fragment memory much
- 6. should work on any OS version and any 68k processor (not tested)
Disadvantages...
- 1. not needed with few fonts
- 2. only works with programs that use the AvailFonts function
- 3. no speedup with rarely used (new) AvailFonts flags
- 4. requires ~1.5k of memory all the time to have installed
- 5. requires at most 46 bytes per font of disk space in FONTS: (often much less)
- 6. FixFontList should be run after adding or deleting fonts
- 7. the stack requirements are different with FastFontList installed (probabely less)
INSTALLATION & USAGE
Sorry there isn't any install script.
Move FastFontList to the WBStartup Drawer. Move FixFontList to a permanent
location (maybe the System drawer?) somewhere else. Double click on FixFontList
once and then every time a font is added or deleted from FONTS:. FixFonts should
be run before FixFontList if necessary. Wait for FixFontList to finish and then
reboot or double click on FastFontList.
to activate.
For advanced users and old OS versions...
Run >NIL: in the S:user-startup works too.
Do NOT run FastFontList twice! (doesn't crash though)
Remove FastFontList from the WBStartup drawer and place somewhere else to
disable permanently after the next reboot.
Send a Ctrl-C to FastFontList to remove from memory. Do NOT do this while
listing fonts!
Along with FastFontList and FixFontList, the _FontList file should be
deleted from FONTS: when uninstalling.
TECHNICAL
FastFontList SetFunctions the diskfont.library AvailFonts function. When
AvailFonts is called and the flags are acceptable, the file FONTS:_FontList is
loaded which contains the information about the fonts on disk. In memory fonts
are added if requested. If AFF_Tagged, AFF_Bitmap or any unknown flags are set
then the function is passed through to the old AvailFonts function but offers
no speedup. Likewise, if disk fonts are not requested then the request is passed
through to the old Availfonts function.
FixFontList simply calls AvailFonts with the AFB_Disk flag set and writes to
FONTS:_FontList the size of the returned data that follows and then the data.
Unused space is removed when writing.
FastFontList and FixFontList are written in Assembler. Both are pretty well
optimized and not much would be gained by optimizing for specific processors.
Both programs should be system friendly (i.e., pass all debugging tool tests).
If any bugs are found, please e-mail me.
BUGS
Bugs:
Quirks:
- Running FastFontList twice SetFunctions AvailFonts again (shouldn't crash though)
- FastFontList could be more tolerant of corrupt FONTS:_FontList file
- Quitting FastFontList can cause a crash if listing fonts (SetFunction's problem)
- AFB_Scaled is ignored when listing diskfonts (I don't think it would ever matter)
DISTRIBUTION
FastFontList and FixFontList are free. Please include the docs when distributing.
Please send bug reports, translations, and suggestion to
me.
HISTORY
This is version 1.1 and is the second version released.
- Optimized a few bytes
- Fixed a small bug when quitting both programs (never heard of a crash though)
version 1.0 (11.10.97)
CREDITS & THANKS
I would like to thank the following people...
- Chris Williams for giving me the idea to do this project
- Frank Wille for his great assembler & linker (PhxAss & PhxLnk)
- Amiga freeware/PD authors
- Amiga supporters
- Anyone able to resist the "Dark Side" (Microsloft)